package model

import org.junit.Before
import org.junit.Test
import static org.junit.Assert.*
import exceptions.SinPistaException

class LugarTest {
	Pais pais;
	Pais otroPais;
	Villano villano;
	Lugar biblioteca;
	
	@Before
	def void setUp(){
		pais= new Pais()
		otroPais= new Pais()
		pais.agregarCaracteristica("unCaracteristica1")
		pais.agregarCaracteristica("unCaracteristica2")
		pais.agregarCaracteristica("unCaracteristica3")
		pais.agregarCaracteristica("unCaracteristica4")
		pais.agregarCaracteristica("unCaracteristica5")
		pais.nombre="un nombre"
		otroPais.nombre="otro nombre"
		otroPais.agregarCaracteristica("otraCaracteristica")
		pais.agregarConexionAerea(otroPais)
		otroPais.agregarConexionAerea(pais)
		villano= new Villano()
		villano.nombre="villano malote"
		villano.agregarHobbie("un hobbie1")
		villano.agregarHobbie("un hobbie2")
		villano.agregarHobbie("un hobbie3")
		villano.agregarHobbie("un hobbie4")
		villano.agregarSenhaParticular("una seña particular1")
		villano.agregarSenhaParticular("una seña particular2")
		villano.agregarSenhaParticular("una seña particular3")
		villano.agregarSenhaParticular("una seña particular4")
		
		biblioteca= new Biblioteca()
	}	
	
	@Test
	def void testHabilitarPistasDeLaBiblioteca(){
		biblioteca.habilitarPistas(pais,villano)
		assertEquals(2,biblioteca.consultar().size)
	}
	
	@Test(expected = SinPistaException)
	def void testDeshabilitarPistasDeLaBiblioteca(){
		biblioteca.deshabilitarPistas
		biblioteca.consultar()
	}
	
	@Test
	def void testSetVillanoEnElLugarYPreguntarSiSeEncuentraEnElPais(){
		biblioteca.setVillanoOn(villano)
		assertTrue(biblioteca.contieneAlVillano)
	}
	
	@Test
	def void testBibliotecaComoUltimaParadaTieneUnaUnicaPista(){
		biblioteca.ultimaParada
		assertEquals(1,biblioteca.consultar().size)
	}
	
}